package cn.hy.机考.part04;

import java.util.Scanner;

/**
 * @author hy
 * 三十七、素勾股数
 * 如果三个正整数 A B C ,A2+B2=C2 则为勾股数 如果ABC之间两两互质，即A与B A与C B与C均互质没有公约数， 则称其为勾股数元组。
 * 请求出给定 n m 范围内所有的勾股数元组
 * 1
 * 20
 * 输出
 * 3 4 5
 * 5 12 13
 * 8 15 17
 */
public class Demo37 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int m = input.nextInt();
        int count = 0;
        for (int a = n; a < m; a++) {
            for (int b = a + 1; b < m; b++) {
                for (int c = b + 1; c < m; c++) {
                    if (hz(a, b) && hz(a, c) && hz(b, c) && a * a + b * b == c * c) {
                        System.out.println(a + " " + b + " " + c);
                        count++;
                    }
                }
            }
        }
        if (count == 0) {
            System.out.println("Na");
        }
    }

    /**
     * 判断n、m是否互质。
     * 思想，找不到比1大的公约数，则互为质数。
     * 欧几里得算法
     * https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95/1647675
     * 其函数为求最大公约数，当公约数为1的时候，则其互质
     */
    private static boolean hz(int n, int m) {
        int t;
        while (m > 0) {
            t = n % m;// t 是余数
            n = m;
            m = t; //当=0说明两个数之间存在倍数关系
        }
        return n == 1;
    }
}
